package com.hiss.basic.client.system;

import com.hiss.basic.model.system.domain.SysRoleDomain;
import com.hiss.basic.model.system.request.SysRoleCreateRequest;
import com.hiss.basic.model.system.request.SysRoleQueryRequest;
import com.hiss.basic.model.system.request.SysRoleUpdateRequest;
import com.hiss.basic.model.system.request.SysRoleUserQueryRequest;
import com.hiss.basic.model.system.response.SysRoleQueryResponse;
import com.hiss.basic.model.system.response.SysUserQueryResponse;
import com.mybatisflex.core.paginate.Page;
import com.mybatisflex.core.service.IService;

import java.util.Collection;
import java.util.List;

/**
 * 系统角色 service
 */
public interface ISysRoleService extends IService<SysRoleDomain> {

    List<SysRoleQueryResponse> findList(SysRoleQueryRequest request);

    Page<SysRoleQueryResponse> findPageList(SysRoleQueryRequest request);

    Page<SysUserQueryResponse> findUserListPage(SysRoleUserQueryRequest request);

    Collection<Long> findRoleMenuIds(Long roleId);

    void create(SysRoleCreateRequest request);

    void update(SysRoleUpdateRequest request);

    void remove(Long id);
}
